The present disclosure relates to the factory loading of software on a computer system. More particularly, a software installation system is provided which allows only the most recently used software to be stored on the file servers while the entire set of available software is resident on a library server.
It is common in the computer manufacturing industry to load, or bundle, specific software programs on the computers while they are still at the factory. This allows consumers to essentially custom order their computer systems by using a xe2x80x9cbuild-to-orderxe2x80x9d process. There are literally thousands of possible software programs that a customer may need to be loaded on the computer being purchased. For example, there are numerous operating systems (OS), such as the Disk Operating System (DOS), Windows, OS/2, Unix, and the like. Additionally, application programs which run on these operating systems will also need to be installed. Various application programs include word processing programs, such as MS Word, Lotus WordPro, Corel WordPerfect, and the like. Many other application programs may also be requested by a particular end user. For example, spreadsheets, financial planners, electronic mail software, bill paying programs and the like are also available for selection by a customer. Further, the client computer system being loaded will also have a certain hardware configuration that requires specific factory installed software for hardware (FISH), i.e. device drivers, which are needed for the hardware components in the computer to operate. These drivers include printer drivers, mouse drivers, memory control software and the like. It should also be noted that software programs are continually being updated such that multiple versions of the same program are likely to exist. This adds to the number of software programs that must be maintained by the computer manufacturer for installation on customer systems. That is, many versions of DOS, Windows, Word, and the like exist and must be maintained.
Further, the previously described software is off-the-shelf programs and does not include any customer specific programs that must also be maintained. Large commercial customers often employ an in-house staff of programmers to develop specific programs to address the particular business needs of the commercial customer. For example, internally developed inventory software, process control programs and the like may be provided to the computer manufacturer for loading on a quantity of computer systems ordered by that commercial customer. This customer specific software must also be maintained by the computer manufacturer in the event a future order is placed by this customer.
It can be seen that the number of software programs that must be maintained by computer manufacturers for pre-loading is enormous. Further, this software continues to grow each year to take advantage of computer hardware enhancements, such as increased memory capacity. For example, the Windows 98 version has dramatically increased in size and is approximately 500 Megabytes (MB) in 500 files. However, it is not possible for computer manufactures to delete older versions of the various software since it is possible that a customer may request an older version of software and it is a primary goal of build-to-order manufacturing to meet customer requirements. The amount of software needed to be maintained by computer manufacturers can become virtually unmanageable if a practical solution is not found.
Typically, a computer manufacturing facility will include one or more file servers for storing the software programs available for loading onto customer systems. As the number of software programs available to customers increase, the memory capacity must be correspondingly expanded. It can be seen that continually increasing storage capacity of the file servers is only a temporary solution and will eventually become impractical, due to cost concerns and availability of storage resources.
Another possible solution is to use a hierarchical storage management (HSM) system which couples high capacity storage, such as optical storage, to the file server and uses specialized software to swap files between the optical storage and the file server memory. However, in many cases a computer manufacturing facility will include more than one file server. HSM systems are designed to work with only a single file server and can be modified to work with multiple file servers only by partitioning the optical storage between the file servers. That is, for xe2x80x9cnxe2x80x9d file servers, the optical storage will have xe2x80x9cnxe2x80x9d partitions. This effectively decreases the available storage to each file server, since it will only be able to access its assigned partition and the size of the partition is dependent on the number of file servers in the software installation system.
Therefore, it can be seen that a need exists for a factory software installation system that allows a large number of software programs to be managed without increasing the memory capacity of each file server in the system. Further, it would be desirable to have a system that allows for the addition of centralized storage capacity that will operate in conjunction with multiple file servers.
Accordingly, provided is a system for factory installation of software that essentially configures the storage resources in one or more file servers as a xe2x80x9ccache.xe2x80x9d A factory installation system includes at least one file server coupled to a storage management engine (SME) which is coupled to a library server. The storage management engine performs the basic file storage management functions for the factory software installation system. A target customer system being loaded with software is coupled to the file servers and library server. The library server will have sufficient storage capacity to maintain all of the software that may be requested by a target customer system. The storage management engine will determine which software programs included on the file server memory have been the least recently used and delete those files, thus causing the remaining files on the server memory to be the most recently used.
When a customer computer is being loaded, a request is made to the file servers for the desired software. If the desired programs are located on the file servers, then a download to the customer computer is implemented. However, if the requested software is not present, the customer computer then sends a request to the library server for the desired software and a download from the library server to the customer computer occurs. When the target customer system requests the file from the library server, the request is logged in the library server. Periodically, the SME will read the logged requests and then update the file server memories with software which has been requested by the target client computers. Therefore, the most recently requested software is maintained on the file servers with the least recently used programs being stored on the library server. By maintaining the least recently used programs on the library server, storage capacity for the newer (and typically larger) software is made available on the file servers. Other aspects of the system are contained in the subsequent description and the appended claims taken in conjunction with the accompanying drawings.